package com.etime.shycourse.orde.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.etime.shycourse.orde.dto.OrderDetailDto;
import com.etime.shycourse.orde.dto.groupByStateNumDto;
import com.etime.shycourse.orde.pojo.Orders;
import com.etime.shycourse.wx.applets.pojo.Course;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author wb
 * @since 2022-01-10
 */
@Repository
public interface OrdersMapper extends BaseMapper<Orders> {
    /**
     * 统计订单状态 数量
     */
    List<groupByStateNumDto> selectOrdersStateNumDto();

    /**
     * 微信小程序中的
     * 您已购买 当课程已经购买了就不创建订单
     * <p>
     * 判断课程是否购买  返订单id
     */
    @Deprecated
    List<Integer> iFBuyCourseByOrder(OrderDetailDto dto);

    /**
     * 根据订单id 获取订单详情(订单+订单详情)+课程
     *
     * @param orderId
     * @return Orders
     */
    Orders selectOrderDetailsByOrderId(Integer orderId);

    /**
     * 小程序我的订单(订单+订单详情+课程数据接)
     */
    List<Orders> selectOrderDetailsByUserIdOrderState(Integer userId, Integer orderState);

    /**
     * 小程序我的已购课程
     *
     * @param userID
     * @return List<Course>
     */
    List<Course> searchAllBy(Integer userID);
    /**
     * 根据 订单详情中 课时id
     * 和用户id 进行查询是否有订单存在
     * 1--课程  2--章  3--节  4--课时
     *
     * @param lessonId
     * @param UserId
     * @return Int
     */
    Integer countByUserIdCourseLessonId(Integer courseId, Integer lessonId, Integer UserId);

    /**
     * 小程序我的订单(订单+订单详情+课程数据接) 分页
     */
    Page<Orders> selectOrderDetailsByUserIdOrderStatePage(Integer userId, Integer orderState, Page<Orders> page);
}
